﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using The_Chronicles_of_Asku.Areas.Tomb_Floors._1_10;
using The_Chronicles_of_Asku.Characters;
using The_Chronicles_of_Asku.Areas.Tomb_Floors._10_20._10_15;
using The_Chronicles_of_Asku.Areas.Tomb_Floors._10_20._15_20;
using The_Chronicles_of_Asku.Areas.Tomb_Floors._20_30._20_25;
using The_Chronicles_of_Asku.Areas.Tomb_Floors._20_30._26_30;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Floors_1_5;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Floors_6_10;
using The_Chronicles_of_Asku.Areas.End_Game_Floors;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Forest._1_5;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Forest._6_10;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Tower._1_5;
using The_Chronicles_of_Asku.Areas.End_Game_Floors.Tower._6_10;

namespace The_Chronicles_of_Asku.Areas.Tomb_Floors
{
    class FloorSelector
    {
        FloorOne One = new FloorOne();
        FloorTwo Two = new FloorTwo();
        FloorThree Three = new FloorThree();
        FloorFour Four = new FloorFour();
        FloorFive Five = new FloorFive();
        FloorSix Six = new FloorSix();
        FloorSeven Seven = new FloorSeven();
        FloorEight Eight = new FloorEight();
        FloorNine Nine = new FloorNine();
        FloorTen Ten = new FloorTen();
        FloorEleven Eleven = new FloorEleven();
        FloorTwelve Twelve = new FloorTwelve();
        FloorThirteen Thirteen = new FloorThirteen();
        FloorFourteen Fourteen = new FloorFourteen();
        FloorFifteen Fifteen = new FloorFifteen();
        FloorSixteen Sixteen = new FloorSixteen();
        FloorSeventeen Seventeen = new FloorSeventeen();
        FloorEighteen Eighteen = new FloorEighteen();
        FloorNineteen Nineteen = new FloorNineteen();
        FloorTwenty Twenty = new FloorTwenty();
        FloorTwentyOne TwentyOne = new FloorTwentyOne();
        FloorTwentyTwo TwentyTwo = new FloorTwentyTwo();
        FloorTwentyThree TwentyThree = new FloorTwentyThree();
        FloorTwentyFour TwentyFour = new FloorTwentyFour();
        FloorTwentyFive TwentyFive = new FloorTwentyFive();
        FloorTwentySix TwentySix = new FloorTwentySix();
        FloorTwentySeven TwentySeven = new FloorTwentySeven();
        FloorTwentyEight TwentyEight = new FloorTwentyEight();
        FloorTwentyNine TwentyNine = new FloorTwentyNine();
        FloorThirty Thirty = new FloorThirty();
        EndFloorOne EndOne = new EndFloorOne();
        EndFloorTwo EndTwo = new EndFloorTwo();
        EndFloorThree EndThree = new EndFloorThree();
        EndFloorFour EndFour = new EndFloorFour();
        EndFloorFive EndFive = new EndFloorFive();
        EndFloorSix EndSix = new EndFloorSix();
        EndFloorSeven EndSeven = new EndFloorSeven();
        EndFloorEight EndEight = new EndFloorEight();
        EndFloorNine EndNine = new EndFloorNine();
        EndFloorTen EndTen = new EndFloorTen();
        EndlessFloorOne EndlessOne = new EndlessFloorOne();
        AreaOne AreaOne = new AreaOne();
        AreaTwo AreaTwo = new AreaTwo();
        AreaThree AreaThree = new AreaThree();
        AreaFour AreaFour = new AreaFour();
        AreaFive AreaFive = new AreaFive();
        AreaSix AreaSix = new AreaSix();
        AreaSeven AreaSeven = new AreaSeven();
        AreaEight AreaEight = new AreaEight();
        AreaNine AreaNine = new AreaNine();
        AreaTen AreaTen = new AreaTen();
        EndlessFloorTwo EndlessTwo = new EndlessFloorTwo();
        TowerFloorOne TowerOne = new TowerFloorOne();
        TowerFloorTwo TowerTwo = new TowerFloorTwo();
        TowerFloorThree TowerThree = new TowerFloorThree();
        TowerFloorFour TowerFour = new TowerFloorFour();
        TowerFloorFive TowerFive = new TowerFloorFive();
        TowerFloorSix TowerSix = new TowerFloorSix();
        TowerFloorSeven TowerSeven = new TowerFloorSeven();
        TowerFloorEight TowerEight = new TowerFloorEight();
        TowerFloorNine TowerNine = new TowerFloorNine();
        TowerFloorTen TowerTen = new TowerFloorTen();
        EndlessFloorThree EndlessThree = new EndlessFloorThree();

        public void Select(Hero myHero, Mob mob)
        {
            Console.WriteLine();
            Console.WriteLine(GameText.FloorSelector);
            string answer = Console.ReadLine();
            Console.WriteLine();

            switch (answer)
            {
                case "1":
                    Console.Clear();
                    One.theLevel(myHero, mob);
                    Console.Clear();
                    break;

                case "2":
                    Console.Clear();
                    Two.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "3":
                    Console.Clear();
                    Three.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "4":
                    Console.Clear();
                    Four.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "5":
                    Console.Clear();
                    Five.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "6":
                    Console.Clear();
                    Six.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "7":
                    Console.Clear();
                    Seven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "8":
                    Console.Clear();
                    Eight.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "9":
                    Console.Clear();
                    Nine.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "10":
                    Console.Clear();
                    Ten.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "11":
                    Console.Clear();
                    Eleven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "12":
                    Console.Clear();
                    Twelve.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "13":
                    Console.Clear();
                    Thirteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "14":
                    Console.Clear();
                    Fourteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "15":
                    Console.Clear();
                    Fifteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "16":
                    Console.Clear();
                    Sixteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "17":
                    Console.Clear();
                    Seventeen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "18":
                    Console.Clear();
                    Eighteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "19":
                    Console.Clear();
                    Nineteen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "20":
                    Console.Clear();
                    Twenty.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "21":
                    Console.Clear();
                    TwentyOne.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "22":
                    Console.Clear();
                    TwentyTwo.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "23":
                    Console.Clear();
                    TwentyThree.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "24":
                    Console.Clear();
                    TwentyFour.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "25":
                    Console.Clear();
                    TwentyFive.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "26":
                    Console.Clear();
                    TwentySix.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "27":
                    Console.Clear();
                    TwentySeven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "28":
                    Console.Clear();
                    TwentyEight.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "29":
                    Console.Clear();
                    TwentyNine.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "30":
                    Console.Clear();
                    Thirty.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                default:
                    Console.WriteLine("You're an idiot...");
                    break;
            }
        }

        public void SelectEndGame(Hero myHero, Mob mob)
        {
            Console.WriteLine();
            Console.WriteLine(GameText.FloorSelectorEndGame);
            string answer = Console.ReadLine();
            Console.WriteLine();

            switch (answer)
            {
                case "1":
                    Console.Clear();
                    EndOne.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "2":
                    Console.Clear();
                    EndTwo.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "3":
                    Console.Clear();
                    EndThree.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "4":
                    Console.Clear();
                    EndFour.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "5":
                    Console.Clear();
                    EndFive.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "6":
                    Console.Clear();
                    EndSix.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "7":
                    Console.Clear();
                    EndSeven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "8":
                    Console.Clear();
                    EndEight.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "9":
                    Console.Clear();
                    EndNine.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "10":
                    Console.Clear();
                    EndTen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "11":
                    Console.Clear();
                    EndlessOne.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                default:
                    Console.WriteLine("You're an idiot...");
                    break;
            }

        }
        
        public void SelectForest(Hero myHero, Mob mob)
        {
            Console.WriteLine();
            Console.WriteLine(GameText.ForestSelector);
            string answer = Console.ReadLine();
            Console.WriteLine();

            switch (answer)
            {
                case "1":
                    Console.Clear();
                    AreaOne.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "2":
                    Console.Clear();
                    AreaTwo.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "3":
                    Console.Clear();
                    AreaThree.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "4":
                    Console.Clear();
                    AreaFour.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "5":
                    Console.Clear();
                    AreaFive.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "6":
                    Console.Clear();
                    AreaSix.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "7":
                    Console.Clear();
                    AreaSeven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "8":
                    Console.Clear();
                    AreaEight.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "9":
                    Console.Clear();
                    AreaNine.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "10":
                    Console.Clear();
                    AreaTen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "11":
                    Console.Clear();
                    EndlessTwo.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                default:
                    Console.WriteLine("You're an idiot...");
                    break;
            }
        }

        public void SelectTower(Hero myHero, Mob mob)
        {
            Console.WriteLine();
            Console.WriteLine(GameText.TowerSelector);
            string answer = Console.ReadLine();
            Console.WriteLine();

            switch (answer)
            {
                case "1":
                    Console.Clear();
                    TowerOne.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "2":
                    Console.Clear();
                    TowerTwo.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "3":
                    Console.Clear();
                    TowerThree.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "4":
                    Console.Clear();
                    TowerFour.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "5":
                    Console.Clear();
                    TowerFive.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "6":
                    Console.Clear();
                    TowerSix.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "7":
                    Console.Clear();
                    TowerSeven.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "8":
                    Console.Clear();
                    TowerEight.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "9":
                    Console.Clear();
                    TowerNine.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "10":
                    Console.Clear();
                    TowerTen.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                case "11":
                    Console.Clear();
                    EndlessThree.theFloor(myHero, mob);
                    Console.Clear();
                    break;

                default:
                    Console.WriteLine("You're an idiot...");
                    break;
            }
        }
    }
}
